package routers

import (
	"device-admin/internal/app/web/controller"

	"github.com/gin-gonic/gin"
)

func location(rg *gin.RouterGroup) {
	// 位置
	{
		rg.GET("/all", controller.Location{}.All)                                           // 全部位置
		rg.GET("/list", controller.Location{}.List)                                         // 位置列表
		rg.GET("/area-location", controller.Location{}.AreaLocation)                        // 区域位置列表
		rg.GET("/area-location-real", controller.Location{}.AreaLocationReal)               // 区域位置列表有机器的
		rg.POST("/add", controller.Location{}.Add)                                          // 新增位置
		rg.POST("/edit", controller.Location{}.Edit)                                        // 编辑位置
		rg.POST("/delete", controller.Location{}.Delete)                                    // 删除位置
		rg.POST("/data/set-token", controller.Location{}.SetToken)                          // 设置商品token
		rg.POST("/data/disable", controller.Location{}.DisableToken)                        // 禁用商品token
		rg.POST("/data/set-robotids", controller.Location{}.SetRobotIds)                    // 设置商场可查看的设备
		rg.POST("/set-location-points", controller.Location{}.SetLocationPoints)            // 商场积分对接
		rg.POST("/set-nav-url", controller.Location{}.SetNavURL)                            // 设置商场外部导航链接
		rg.POST("/all-points-type", controller.Location{}.AllPointsType)                    // 获取所有积分类型
		rg.POST("/floor/add", controller.Location{}.AddFloor)                               // 楼层-新增楼层
		rg.POST("/floor/edit", controller.Location{}.EditFloor)                             // 编辑楼层
		rg.POST("/floor/delete", controller.Location{}.DeleteFloor)                         // 删除楼层
		rg.GET("/floor/list", controller.Location{}.FloorList)                              // 楼层列表
		rg.GET("/floor/position/list", controller.DevicePosition{}.List)                    // 楼层位置列表
		rg.POST("/floor/position/add", controller.DevicePosition{}.Add)                     // 新增楼层位置
		rg.POST("/floor/position/update", controller.DevicePosition{}.Update)               // 更新楼层位置
		rg.POST("/floor/position/delete", controller.DevicePosition{}.Delete)               // 删除楼层位置
		rg.POST("/tag/add", controller.Location{}.AddLocationTag)                           // 新增位置标签
		rg.POST("/tag/update", controller.Location{}.UpdateLocationTag)                     // 更新位置标签
		rg.POST("/tag/delete", controller.Location{}.DeleteLocationTag)                     // 删除位置标签
		rg.GET("/tag/list", controller.Location{}.LocationTagList)                          // 位置标签列表
		rg.POST("/tag/add-location", controller.Location{}.AddLocationTagAssociation)       // 新增标签位置关联
		rg.POST("/tag/remove-location", controller.Location{}.DeleteTagLocationAssociation) // 移除标签位置关联
		rg.GET("/tag/location/list", controller.Location{}.TagLocationList)                 // 标签位置列表
		rg.POST("/mall-service/open", controller.MallService{}.Open)                        // 商场服务-开通商场服务
		rg.POST("/mall-service/close", controller.MallService{}.Close)                      // 商场服务-关闭商场服务
		rg.GET("/mall-service/list", controller.MallService{}.List)                         // 商场服务-商场服务列表
		rg.POST("/mall-service/add", controller.MallService{}.Add)                          // 商场服务-新增服务项
		rg.POST("/mall-service/update", controller.MallService{}.Update)                    // 商场服务-更新服务项目
		rg.POST("/mall-service/delete", controller.MallService{}.Delete)                    // 商场服务-删除服务项目
		rg.GET("/mall-service/location-list", controller.MallService{}.LocationList)        // 商场服务-已开通商场服务的商场
		rg.POST("/mall-service/qa-add", controller.MallService{}.QAAdd)                     // 商场服务-新增问题
		rg.POST("/mall-service/qa-update", controller.MallService{}.QAUpdate)               // 商场服务-更新问题
		rg.POST("/mall-service/qa-delete", controller.MallService{}.QADelete)               // 商场服务-删除问题
		rg.GET("/mall-service/qa-list", controller.MallService{}.QAList)                    // 商场服务-问题列表
	}

	// 商场导航
	{
		rg.POST("/enable-nav", controller.Location{}.EnableLocationNav)                                 // 开启商场导航
		rg.GET("/location-nav-list", controller.Location{}.LocationNavList)                             // 商场导航列表
		rg.GET("/download-brand-template", controller.Location{}.DownloadBrandTemplate)                 // 下载导航批量导入模版
		rg.POST("/import-brands", controller.Location{}.ImportBrands)                                   // 批量导入品牌
		rg.POST("/brands/update", controller.Location{}.UpdateLocationBrands)                           // 批量更新品牌
		rg.GET("/floor/detail", controller.Location{}.FloorDetail)                                      // 楼层详情
		rg.GET("/floor/brand/list", controller.Robot{}.GetFloorBrandList)                               // 楼层品牌列表
		rg.POST("/floor/brand/add", controller.Location{}.AddFloorBrand)                                // 新增楼层品牌
		rg.POST("/floor/brand/edit", controller.Location{}.EditFloorBrand)                              // 编辑楼层品牌
		rg.POST("/floor/brand/delete", controller.Location{}.DeleteFloorBrand)                          // 删除楼层品牌
		rg.POST("/floor/brand/set-recommended", controller.Location{}.SetBrandRecommended)              // 设置推荐
		rg.POST("/floor/brand/set-search-recommended", controller.Location{}.SetBrandSearchRecommended) // 设置搜索推荐
		rg.GET("/floor/brand/recommended", controller.Location{}.GetBrandRecommended)                   // 获取推荐品牌
		rg.GET("/floor/brand/search-recommended", controller.Location{}.GetBrandSearchRecommended)      // 获取搜索推荐品牌
		rg.POST("/brand/upload-logo", controller.Location{}.UploadBrandLogo)                            // 上传品牌logo
		rg.POST("/brand/add", controller.Location{}.AddBrand)                                           // 新增品牌
		rg.POST("/brand/edit", controller.Location{}.EditBrand)                                         // 编辑品牌
		rg.POST("/brand/delete", controller.Location{}.DeleteBrand)                                     // 删除品牌
		rg.GET("/brand/list", controller.Location{}.BrandList)                                          // 品牌列表
		rg.GET("/brand/detail", controller.Location{}.BrandDetail)                                      // 品牌详情
		rg.POST("/position/add", controller.Location{}.AddPosition)                                     // 新增位置点
		rg.POST("/position/edit", controller.Location{}.EditPosition)                                   // 编辑位置点
		rg.POST("/position/delete", controller.Location{}.DeletePosition)                               // 删除位置点
		rg.GET("/position/list", controller.Location{}.PositionList)                                    // 位置点列表
		rg.GET("/position/detail", controller.Location{}.PositionDetail)                                // 位置点详情
		rg.POST("/position/add-device", controller.Location{}.AddPositionDevice)                        // 添加起始点
		rg.POST("/position/delete-device", controller.Location{}.DeletePositionDevice)                  // 删除起始点
		rg.GET("/position/device-list", controller.Location{}.PositionDeviceList)                       // 起始点列表
		rg.GET("/nav/list", controller.Location{}.NavList)                                              // 导航列表
		rg.POST("/nav/delete", controller.Location{}.DeleteNav)                                         // 删除导航
		rg.POST("/nav/upload-map", controller.Location{}.UploadNavMap)                                  // 上传导航地图
		rg.POST("/nav/set-nav-map", controller.Location{}.SetNavMap)                                    // 设置导航地图
		rg.POST("/nav/add-path", controller.Location{}.AddNavPath)                                      // 新增导航路径
		rg.POST("/nav/delete-path", controller.Location{}.DeleteNavPath)                                // 删除导航路径
		rg.POST("/nav/reset-path", controller.Location{}.ResetNavPath)                                  // 重置导航路径
		rg.GET("/nav/path-list", controller.Location{}.NavPathList)                                     // 路径列表
		rg.GET("/nav/get-shortest-path", controller.Location{}.GetShortestPath)                         // 获取最短路径
	}
}
